import Dialog from '@vant/weapp/dialog/dialog'
const app = getApp()

Page({
	data: {
		userId: '', // 用户ID
		active: 0, // 当前选中的标签栏
		tabsList: [], // 分类列表
		list: [], // 商品列表
		page: 1, // 当前第几页
		pageSize: 10, // 一页多少条
		isLoading: false, // 是否在加载中
		isFinish: false, // 是否加载完成
		score: 0, // 用户剩余购物金
		notReceived: 0, // 用户未领取，但即将到账的购物金
		cartNum: 0 // 购物车商品类型数量
	},
	onLoad() {
		app.getUrl(this)
		app.getSystem(this)
		this.initData()
		this.getPoints()
		this.getCategoryList(() => {
			this.getList()
		})
		this.getcount()
	},
	onShow() {
		this.getCartNum()
	},
	/**
	 * @function 下拉刷新
	 */
	onPullDownRefresh() {
		this.setData({
			page: 1,
			isLoading: true,
			isFinish: false,
			list: []
		})
		this.getPoints()
		this.getCartNum()
		this.getCategoryList(() => {
			this.getList(() => {
				wx.stopPullDownRefresh()
			})
		})
	},
	/**
	 * @function 上拉加载回调
	 */
	onReachBottom: function () {
		// 不在加载中，并且没有加载完成
		if (!this.data.isLoading && !this.data.isFinish) {
			this.setData({
				isLoading: true,
				page: this.data.page + 1
			})

			this.getList()
		}
	},
	/**
	 * @function 初始化参数
	 * @param {*} query
	 */
	initData() {
		this.setData({
			userId: app.globalData.userId
		})
	},
	/**
	 * @function 分类选择切换时触发
	 */
	tabsChange(e) {
		this.setData(
			{
				page: 1,
				list: [],
				active: e.detail.name,
				isLoading: false,
				isFinish: false
			},
			this.getList
		)
	},
	/**
	 * @function 获取商品类目列表
	 * @param {*} cb 成功的回调，因为之前没有包promise，所以这边用cb
	 */
	getCategoryList(cb) {
		app.util.request({
			url: 'integral/getClass',
			cachetime: '0',
			data: {},
			testapi: app.siteInfo.siteroot_web,
			success: res => {
				const { code, data } = res.data
				if (code === 0) {
					this.setData({
						tabsList: [
							{
								id: 0,
								name: '全部'
							},
							...data
						]
					})
					console.log(this.data.active)
				}
				cb && cb()
			}
		})
	},
	/**
	 * @function 获取商品列表
	 * @param {*} cb 成功的回调，因为之前没有包promise，所以这边用cb
	 */
	getList(cb) {
		this.setData({
			isLoading: true
		})

		app.util.request({
			url: 'integral/getGoodsList',
			cachetime: '0',
			data: {
				page: this.data.page,
				type_id: this.data.active,
				limit: this.data.pageSize
			},
			testapi: app.siteInfo.siteroot_web,
			success: res => {
				const { code, data, msg } = res.data
				if (this.data.page === 1) {
					this.setData({
						list: data.data
					})
				} else {
					this.setData({
						list: [...this.data.list, ...data.data]
					})
				}
				// 不只有1页，并且当前页码小于总页码，则表示还可以上拉加载
				if (this.data.page === data.last_page) {
					this.setData({
						isFinish: true
					})
				}
				this.setData({
					isLoading: false
				})
				console.log(this.data.list)
				cb && cb()
			}
		})
	},
	/**
	 * @function 获取购物金
	 */
	getPoints() {
		app.util.request({
			url: 'integral/getUserScore',
			cachetime: '0',
			data: {
				user_id: this.data.userId
			},
			testapi: app.siteInfo.siteroot_web,
			success: res => {
				console.log(res)
				const { score, not_received } = res.data.data
				this.setData({
					score,
					notReceived: not_received
				})
			}
		})
	},
	/**
	 * @function 打开tips弹框
	 */
	openTips(e) {
		const { tips } = e.currentTarget.dataset
		Dialog.alert({
			title: '温馨提示',
			message: tips,
			confirmButtonText: '我知道了'
		})
	},
	getcount() {
		wx.request({
			url: app.siteInfo.siteroot_web,
			cachetime: '0',
			method: 'GET',
			data: {
				c: 'integral',
				a: 'getUserCartNum',
				user_id: app.globalData.userId
			},
			success: resp => {
				const res = resp.data
				console.log('res--', res)
				if (res.code == 0) {
					// 请求成功
					this.setData({
						resdata2: res.data
					})
				} else {
					// 请求失败
					wx.showToast({
						icon: 'none',
						title: res.msg
					})
				}
			}
		})
	},
	/**
	 * @function 获取购物车商品类型数量
	 */
	getCartNum() {
		app.util.request({
			url: 'integral/getUserCartNum',
			cachetime: '0',
			data: {
				user_id: this.data.userId
			},
			testapi: app.siteInfo.siteroot_web,
			success: res => {
				console.log(res)
				this.setData({
					cartNum: res.data.data.cart_num
				})
			}
		})
	},
	/**
	 * @function 跳转到商品详情
	 */
	goProductDetail(e) {
		// wx.navigateTo({
		//     url: `./productDetails/index?id=${e.detail.id}`,
		// });
	},
	/**
	 * @function 跳转到我的兑换列表
	 */
	goOrderList() {
		wx.navigateTo({
			url: `./orderList/index`
		})
	},
	/**
	 * @function 跳转到购物车
	 */
	goShopCart() {
		wx.navigateTo({
			url: `./shopCart/index`
		})
	}
})
